Systems for and methods of providing inertial scrolling and navigation using a fingerprint sensor

ABSTRACT

An emulation system receives a swipe along a finger sensor to set a computer display in motion. After the swipe is completed, the display continues along its previous path. Depending on their direction, subsequent swipes can be used to accelerate or decelerate the motion. Gradually, the display decelerates. In one embodiment, this deceleration simulates an inertial decay, providing the user with a pleasing display that gradually rolls to a stop. The deceleration is modeled on a joystick return-to-home inertial decay, allowing the user greater control when navigating over the display. The finger sensor is used to emulate different electronic devices, such as a mouse, a scroll wheel, and a rotating wheel.

RELATED APPLICATION

This application claims priority under 35 U.S.C. §119(e) of theco-pending U.S. provisional patent application Ser. No. 61/065,751,filed Feb. 13, 2008, and titled “System for Providing InertialScrolling/Navigation Using a Fingerprint Sensor,” which is herebyincorporated by reference.

FIELD OF THE INVENTION

This invention relates to input devices. More specifically, thisinvention relates to systems for and methods of scrolling and navigatingusing fingerprint sensors.

BACKGROUND OF THE INVENTION

Fingerprint sensors find many uses, including verifying a user'sidentity and emulating different input devices, such as computer mice,pressure-sensitive buttons, and scroll wheels. Many sensors read fingerswipes to scroll through pages, menu items, slides of images, and otherdisplayed information. Generally, when the finger swipe stops, thescrolling stops, especially if the finger is removed from the surface ofthe fingerprint sensor. Using conventional scrolling techniques, a usermust perform multiple swipes, with several starts and stops, to scrollthrough a large area. Navigating in this way is both inefficient andtime consuming.

SUMMARY OF THE INVENTION

In a first aspect of the invention, a method includes generating motionof a computer display in response to swiping an object along a fingersensor. After the swiping is completed, the motion gradually changes. Inone embodiment, the motion decelerates, such as with an inertial decay.A dampening factor of the inertial decay is related to a speed of theswiping or a duration of the swiping. Preferably, the inertial decay iscalculated using a model of a joystick return-to-home motion.

In one embodiment, the method also includes stopping the motion inresponse to tapping the finger sensor after the swiping is completed.The method also includes performing an action on a computer system inresponse to changing a pressure on the finger sensor (e.g., by tappingthe sensor) after the swiping is completed. If the computer displayshows an image, the action includes either zooming in on the image orzooming out from the image.

In one embodiment, the motion corresponds to scrolling through a list ofitems, rotating an image, or moving over an image. The computer displayshows a list of items, a region of an image, a grid menu, slides ofimages, a game image, or an element of a computer simulation.

Changing the motion includes changing a speed of the computer display inresponse to one or more subsequent swipes after the swiping iscompleted. In one embodiment, the speed is increased if the one or moresubsequent swipes are in a same direction as the swiping. The speed isdecreased if the one or more subsequent swipes are in a differentdirection as the swiping.

In one embodiment, the method also includes accelerating the motion byholding the object stationary on the finger sensor before the swiping iscompleted.

Preferably, the finger sensor is a finger swipe sensor. Alternatively,the finger sensor is a finger placement sensor.

In a second aspect of the invention, a navigation system includes afinger sensor and a translator module. The translator module isprogrammed for gradually changing a motion of a computer display inresponse to completing swiping an object across the finger sensor. Inone embodiment, the motion is changed by decelerating it, such asuniformly. Preferably, the uniform deceleration has an inertial decay,such as one modeled on a joystick return-to-home motion.

In one embodiment, the motion is changed by accelerating it in responseto receiving one or more swipes across the finger sensor in a samedirection as the swiping. In another embodiment, the motion is changedby decelerating it in response to receiving one or more swipes acrossthe finger sensor in an opposite direction as the swiping.

In one embodiment, the translator module is also programmed tosingle-step scroll through the computer display and to control thecomputer display in response to determining a change in pressure on asurface of the finger sensor.

In one embodiment, the motion is changed by both accelerating it anddecelerating it, at different times.

Preferably, the translator module is also programmed to suddenly stopthe motion in response to a performing a predetermined stop motionacross the finger sensor. The predetermined stop motion is a tap or apress-and-hold motion, to name only a few possible motions.

In one embodiment, the translator module includes a computer-readablemedium containing computer instructions that, when executed by aprocessor, result in gradually changing the motion, suddenly stoppingthe motion, or both.

In a third aspect of the invention, a navigation system includes afinger sensor, a movement correlator coupled to the finger sensor, anacceleration calculator coupled to the movement correlator, and multipleelectronic input device emulators, each coupled to the accelerationcalculator and to a computer display device. The acceleration calculatoris programmed to gradually accelerate, decelerate, or both, a motion ofa display on a computer display device in response to completing a swipeacross the finger sensor. In one embodiment, the acceleration calculatoris programmed to determine an inertial decay of the deceleration. Themultiple input device emulators include any two or more of a mouseemulator, a scroll wheel emulator, a push-button emulator, and a wheelemulator.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-E illustrate inertial scrolling through menu items by swiping afinger across a finger sensor in accordance with one embodiment of thepresent invention.

FIG. 2 is a graph of finger motion along a finger sensor versus time inaccordance with one embodiment of the present invention.

FIGS. 3A-E illustrate inertial return-to-home motion of a joystick, usedto control scrolling in accordance with the present invention.

FIG. 4 is a flow chart showing the steps for scrolling through a screendisplay in accordance with one embodiment of the present invention.

FIG. 5 shows a window translated over an image of a map in accordancewith one embodiment of the present invention.

FIGS. 6A-E illustrate emulation of a wheel on a gaming device usinginertial deceleration in accordance with one embodiment of the presentinvention.

FIG. 7 is a flow chart of the steps for using inertial decay to emulatedifferent types of input devices in accordance with the presentinvention.

FIG. 8 is a flow chart showing the steps for scrolling through a screendisplay using a sudden-stop feature in accordance with one embodiment ofthe present invention.

FIGS. 9A-H each shows finger movement along a finger sensor and acorresponding graph of display speed versus time in accordance with oneembodiment of the present invention.

FIG. 10 is a flow chart of the steps for determining additive motion inaccordance with one embodiment of the present invention.

FIG. 11 is block diagram of the components of a system for scrollingthrough a display by emulating a scroll wheel in accordance with oneembodiment of the present invention.

FIG. 12 is block diagram of the components of a system for navigatingthrough displays by emulating a scroll wheel, a mouse, and a wheel inaccordance with one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Embodiments of the present invention use a fingerprint sensor to controlthe movement of elements on a computer or other display. The elements,such as items in a menu or a window overlying a map, are set in motionand then gradually come to a stop. The display is visually pleasing and,more importantly, gives the user greater control when navigating throughthe display.

In one example, the elements are a list of items in a menu. Rather thansingle-stepping through the items, using conventional scrolling means, asingle finger swipe sets the menu in motion before it graduallydecelerates and comes to a stop. This fluid scrolling through a menu isgenerally more intuitive and preferred than scrolling with severalstarts and stops as when using conventional scrolling implementations.

Preferably, the gradual deceleration simulates an inertial decay, muchas the speed of a pinwheel decreases after it has been launched: Oncethe wheel is spinning, external interaction is no longer required tokeep it going. Eventually, the wheel slows down and comes to a stop dueto friction.

Many displayed applications benefit from this simulation of inertialdecay. For example, a movable window enclosing a portion of an image mapis navigated to overlie different regions of the map. The window can beset in motion along any direction (e.g., in a north western direction),toward a region or area of interest, before gradually decelerating.

Preferably, the inertial deceleration is modeled after a joystick with adampened return to its home or origin. In this implementation, fingermovement, as computed in the traditional manner, translates to movementof the joystick head, which is then translated to a motion, such as ascrolling motion. The position of the joystick head, as well as thecurrent acceleration state of the motion model, dictates the speed withwhich the scrolling or other motion occurs. When a finger is lifted fromthe fingerprint sensor, the joystick head will return to its origin orhome position.

In accordance with other embodiments of the present invention, an“additive” attribute of scrolling and other motion is implemented. Forexample, consecutive finger swipes across a surface of a finger sensorin a same direction will, with each swipe, increase the speed of acomputer display. Swiping in an opposite direction will slow the motionor even bring it to a stop. Swiping in an opposite direction thusfunctions as a drag on the motion.

The discussion that follows first explains one implementation of theinvention, used to emulate a scroll wheel. The general terms discussedin that implementation are then used to explain how the invention can beextended, used to apply this gradual deceleration to other inputdevices. Some of this discussion is also applicable to the use ofadditive motion, such as scrolling.

FIGS. 1A-E show a finger swipe sensor 105 and a display device 125 at asequence of times T₁-T₅, respectively. To better describe embodiments ofthe present invention, the sequence is at regular intervals, that is,the differences T₂−T₁, T₃−T₂, T₄−T₃, and T₅−T₄ are the same. The displaydevice 125 shows a menu 120 of names; the swipe sensor 105 is used toscroll through the menu 120. In this embodiment, the swipe sensor 105 isused to emulate a scroll wheel. As shown in FIG. 1A, at time T₁ a finger101 is swiped along a surface of the swipe sensor 105. FIG. 1A shows ahorizontal line above the finger 101, having an arrow indicating thedirection of the swipe, and a vertical line next to the menu 120, havingan arrow indicating the direction of the scrolling. The vertical linehas a thickness corresponding to a speed with which the menu 120scrolls: A thicker vertical line indicates that the menu 120 isscrolling faster than when the menu 120 is adjacent to a thinnervertical line.

FIG. 1B shows the finger 101 at time T₂. As shown in FIG. 1B, thethickness of the vertical line in FIG. 1B indicates that the menu 120scrolls faster than it did at time T₁. At time T₃, shown in FIG. 1C, thefinger 101 has left the finger sensor 105, but the menu 120 continues toscroll, but slower than at time T₂. At time T₄, the menu 120 continuesto scroll, but slower than it did at time T₃. At time T₅, the menu 120has stopped scrolling. In this example, after the swiping is completed(at time T₂), the menu 120 gradually slows to a stop, preferablysimulating a spring's critically damped or over-damped motion or amotion corresponding to a joystick's return-to-home motion. Whensimulating this joystick motion, modeled in embodiments of theinvention, the rate at which the joystick head returns to the homeposition is influenced by a dampening factor, such as the weight of thejoystick.

The dampening factor acts as an inertial decay factor. By usingdifferent decay factors, different inertial scrolling behavior can beachieved. The inertial scrolling can be customized by mapping severalfactors (including, but not limited to, the dampening factor and theacceleration factor) to the axial displacement of the joystick.

FIG. 2 is a graph 130 plotting the speed at which the menu 120 of FIGS.1A-E scrolls. Throughout this Specification, identical labels refer toidentical elements. In the graph 130, speed is plotted on the verticalaxis 135, and time is plotted on the horizontal axis 140. For each timeT₀-T₅, the graph 130 shows an “x” to indicate when the finger 101 is onthe sensor 105 and a “◯” to indicate when the finger 101 is off thesensor 105.

As shown in FIG. 2, the finger 101 first touches the sensor 105 at timeT₀. The finger 101 then moves along the sensor 105 at a speed thatincreases from time T₁ to time T₂, when the finger 101 is removed fromthe sensor 105. From time T₂ to time T₅, the speed with which the menu120 scrolls gradually decreases until it stops at time T₅.

Preferably, a joystick return-to-home motion is modeled to generatesignals used to gradually decelerate the display movement. As oneexample, FIGS. 3A-E show a joystick 200, whose return-to-home motion isemulated. FIGS. 3A-E show the joystick 200 at the sequential timesT₁-T₅, respectively. Referring to FIGS. 3A-E, the speed with which thejoystick 200 moves a displayed object is directly proportional to anangle θ that the joystick 200 makes with an axis 220 perpendicular withthe joystick base, much like a throttle. FIG. 3A shows the joystick 200making an angle θ₁ with the axis 220, corresponding to the movement ofthe menu display 120 shown in FIG. 1A. Similarly, FIGS. 3B-C show thejoystick making angles θ₂-θ₅, respectively, corresponding to themovement of the menu display 120 shown in FIGS. 1B-E, respectively. Inthis example, θ₅=0, indicating that the menu display 120 is not moving.

Those skilled in the art will recognize that the return-to-home motionof the joystick 200 after it is released (FIGS. 3B-E) is dependent onseveral parameters, such as the angle θ₂ at which the joystick 200 isreleased and the mass of a head 210 of the joystick 200, to name only afew parameters.

In one embodiment, the angle θ_(i) is given by Equation 1:

θ_(i)=θ₁ e ^(−(Ω+K)t)  [Equation 1]

where Ω is a damping factor, K is a constant, and t is time. The dampingfactor Ω is related to the mass of the head 210. In one embodiment, thedamping factor Ω is directly proportional to the mass of the head 210.

In one embodiment, the angle θ_(i) is directly mapped to a distance amenu item is from a point of reference. In one embodiment, the distanceis the distance of the head 211 from the axis 220. For example, x=lengthof the joystick (L)*sin(θ_(i)). The linear speed of the distance x(dx/dt) is given by Equation 2:

dx/dt=L*dθ/dt*cos(θ)  [Equation 2]

Equations 1 and 2 together are used to map a joystick (angular) dampeddeceleration to a scrolling (linear) damped deceleration. Thus, auniform return-to-home deceleration motion is mapped to a scrollingdeceleration motion.

It will be appreciated that, together, Equations 1 and 2 are only oneexample of a function used to calculate the angle θ_(i) at time t (e.g.,each of the times T₁-T₅) and thus a rate of uniform deceleration.

FIG. 4 is a flow chart showing the steps of a process 300 fordetermining inertial deceleration corresponding to a joystickreturn-to-home motion and using that deceleration to control thescrolling of a menu in accordance with the present invention. Referringto FIGS. 1A-E, 3A-E, and 4, in the start step 301, parameters, such as Ω(Equation 1), are initialized and others are computed. Next, in the step303, the movement of the finger 101 along a surface of the finger swipesensor 105 is computed. Preferably, this movement is determined bycorrelating a pattern on a surface of the finger 101 captured atsequential times (e.g., T₁ and T₂) to determine the speed and directionof the finger swipe. The patterns are formed by the location ofbifurcations, pores, ridge endings, swirls, whorls, and otherfingerprint minutiae. Correlating fingerprint images is taught in U.S.Pat. No. 7,197,168, filed Jul. 12, 2002, and titled “Method and Systemfor Biometric Image Assembly from Multiple Partial Biometric FrameScans,” which is incorporated by reference in its entirety. It will beappreciated that other objects with patterned images, such as patternedstyluses, can also be swiped across a finger sensor to scroll throughmenus in accordance with the present invention.

Next, in the step 305, the finger movement is translated into joystickmovement, and in the step 307, the new joystick movement is calculated.Next, in the step 309, inertial/acceleration factors based on thejoystick position are updated. In the step 311, the joystick position istranslated into a scrolling motion by applying the acceleration factors,and in the step 313, the scrolling motion is used to scroll the menu120.

In the step 315, the process determines whether the finger 101 is stillon the sensor 105. If the finger 101 is still on the sensor 105, theprocess loops back to the step 303; otherwise, the process continues tothe step 317, in which it applies the inertial factors to determine thedeceleration. These inertial factors can be based on the speed of theswipe when it is completed, the duration of the swipe, the length of theswipe, or some combination of these. For example, if the speed of theswipe is fast or the duration of the swipe is long, the inertial factorsresult in a slower deceleration. This result corresponds to a largemomentum being imparted to a body.

From the step 317, the process continues to the step 319, in which itdetermines whether the finger 101 is back on the sensor 105. If thefinger 101 is back on the sensor 101, the process loops back to the step303; otherwise, the process loops back to the step 307.

As explained above, embodiments of the invention are able to uniformlydecelerate motion generated by many electronic input devices,controlling different displays. FIG. 5 illustrates the finger sensor 105used to control a display 450 on the display device 125. The display 450is an image map overlayed by a movable window 410, which enclosesportions of the image map 450. Swiping the finger 101 over the fingersensor 105 in the direction indicated by the arrow 475 causes the window410 to move or translate in a corresponding direction over the image map450. In this embodiment, the finger sensor 105 is emulating a mouse or atrack ball. The window 410 moves from the location 425A at time T₁, tolocation 425B at time T₂, to location 425C at time T₃, to location 425Dat time T₄, and finally to location 425E at time T₅, where it stops.Again, the thicknesses of the arrows joining adjacent locations (e.g.,the arrow connecting the window 410 at locations 425A and 425B) indicatethe speed with which the window 410 moves. The speed with which thewindow 410 moves decelerates from time T₂ to T₅, preferably in aninertial manner.

It will be appreciated that deceleration can be determined in otherways. For example, deceleration can be determined from a look-up table.The look-up table can map the current speed and map it into a displayspeed for each sequential time. In one example, a table stores scalingfactors used for mapping current speed to subsequent speeds. As oneexample, the table stores 10 scaling factors for 10 corresponding timecycles. Thus, if the current display speed is 10 frames-per-second(fps), after one second, the speed is multiplied by the first entry inthe table, the scaling factor 0.9, to determine the speed after onesecond: 10 fps*0.9=9 fps. If the second entry in the table is 0.7, thespeed during the next second of scrolling is the current speed times thenext scaling factor (9 fps*0.7), or 6.3 fps. This table lookup continuesuntil the last scaling factor (0.0) stops the scrolling. Using tablelook-ups in this way, linear, non-linear, step-wise (e.g., the speed isdecreased, maintained over a time segment and decreased again, with thesequence continuing until scrolling stops), and other types of decay canbe determined to control scrolling.

It will be appreciated that deceleration in accordance with the presentinvention is able to be uniform or non-uniform. Different types ofdeceleration can be used to fit the application at hand. Indeed, uniformdeceleration can be used over one time interval and non-uniformdeceleration over another time interval.

FIGS. 6A-E show another example, in which modeling inertial decay isused to decelerate a different display, a computer simulated gamingwheel 500, such as a roulette wheel. FIGS. 6A-E show the gaming wheel500 at the times T₁-T₅, respectively, controlled using a finger sensor(not shown). When a user traces a circular or semi-circular path alongthe finger sensor, the gaming wheel 500 is turned in the same direction.When the finger is removed from the finger sensor (at the time shown inFIG. 6B), the gaming wheel 500 continues to rotate, but at a rate thathas an inertial decay in accordance with the present invention. As inFIGS. 1A-E, the widths and arrows of the curved lines next to the gamingwheel 500 indicate the speed and direction, respectively, that thegaming wheel 500 is rotating.

FIG. 7 shows the steps of a process 600 for generally moving a computerdisplay by using a finger sensor to emulate any number of electronicinput devices in accordance with the present invention. The electronicinput devices include, but are not limited to, a scroll wheel, a mouse,a wheel, a track ball, a push button, and a joy stick. First, in thestart step 601, parameters such as a dampening factor are initialized.Next, in the step 603, a finger movement along the finger sensor isdetermined. and in the step 605, the movement is translated to a motionof the emulated device. This motion can be the movement of a joystick, ascrolling motion, a translation motion (such as of a window over a map),and a button press, to name only a few.

Next, in the step 607, the position and movement parameters of theemulated device are updated. Examples of movement parameters includeacceleration and direction. These parameters are used to determine thedirection that is to be taken (e.g., continued) when the finger nolonger touches the finger sensor. The acceleration can include gradual(uniform or non-uniform) deceleration. In the step 609, the display(e.g., a list of menu items) is moved in a manner corresponding to theemulated electronic input device.

In the step 611, the process determines whether the finger is still onthe finger sensor. If the finger is still on the finger sensor, theprocess loops back to the step 603. Otherwise, the process continues tothe step 613, in which it determines whether the display has stoppedmoving. If the display has not stopped moving, the process loops back tothe step 603. Otherwise, the process continues to the step 615, in whichit ends.

In accordance with the present invention, a sudden-stop featureinstantly stops the inertial movement (e.g., scrolling) with a freshtouch of the finger sensor 105. In this way, a user can quickly change ascrolling direction without having to wait for the scrolling to stop.This not only allows for greater ease of use but also allows quickturnaround of fresh movements in other directions. With this feature,there is no need to generate extra movement to overcome the currentinertia before shifting the direction of motion.

FIG. 8 shows the steps of a process 700 incorporating the sudden-stopfeature when scrolling through the menu 120 in FIGS. 1A-E. Referring toFIGS. 1A-E and 8, in the start step 701, parameters, such as a dampeningfactor, are initialized. In the step 703, the process reads the movementof the finger 101 along a surface of the sensor 105. In the step 705,the menu 120 is scrolled in a manner corresponding to the fingermovement. Next, in the step 707, the process determines whether thefinger 101 is still contacting the sensor 105. If the finger 101 isstill contacting the sensor 105, the process loops back to the step 703;otherwise, the process continues to the step 709.

In the step 709, the process decelerates the scrolling based on theinertial factors, such as described above. In the step 711, the processdetermines whether the scrolling has stopped. If the scrolling hasstopped, the process loops back to the step 703; otherwise, the processcontinues to the step 713, in which it determines whether the finger 101is again contacting the sensor 105. If the finger 101 is not againcontacting the sensor 105, the process loops back to the step 703;otherwise, the process continues to the step 715.

In the step 715, the process determines whether the sensor 105 wastapped quickly, thereby triggering a sudden stop. As one example, theprocess determines that the sensor 105 was tapped quickly if the finger101 next contacts the sensor 105 at a time T_(A) and is removed at atime T_(B), where T_(B)−T_(A)≦5 ms. Those skilled in the art willrecognize other ways of defining and later recognizing a tap as “quick.”If, in the step 715, the process determines that the tap is quick, theprocess continues to the step 717, in which the scrolling is suddenlystopped; otherwise, the process loops back to the step 703.

While FIG. 8 describes scrolling based on inertial factors, it will beappreciated that the sudden-stop feature is able to be used todecelerate scrolling and other motions using other kinds ofdeceleration, including non-uniform ones. Those skilled in the art willrecognize other ways of triggering a sudden stop in accordance with thepresent invention. In an alternative embodiment, the sudden-stop featureis triggered by contacting the sensor 105 and maintaining the contactfor a predetermined time, such as one or two seconds.

Embodiments of the present invention are also able to accelerate ordecelerate motion of a computer display. As one example, consecutivefinger swipes in a same direction result in accelerating the motion.Swiping in one direction followed by a swipe in the opposite directionresults in decelerating the motion. FIGS. 9A-H illustrate how the motionof the display 120 (FIGS. 1A-E) is accelerated by swiping the finger 101multiple times along the finger sensor 105 over a sequence of increasingtimes T₀-T₇, respectively.

Each of the FIGS. 9A-H depicts a graph 150 plotting a speed of thedisplay 120 (on the vertical axis labeled “v1” to “v7”) versus time.Each occurrence of the graph 150 identifies the current speed by thelabel 155. FIGS. 9D-H also label the speed at the immediately precedingtime with an “x,” tracing changes in velocity with dotted lines. Asshown in FIGS. 9A-H, swiping the finger sensor 105 multiple timesincreases the speed of the display 120. Increasing speed in this way isreferred to as “additive” motion.

As shown in FIGS. 9A-C, moving the finger 101 across the finger sensor105 from time T₀ to T₂ causes the speed of the display 120 to increasefrom 0 to v4. After the finger 101 is removed from the sensor 105immediately after the time T₂ (FIGS. 9C-D), from then until the time T₅(FIGS. 9C to 9F), the speed decreases.

After the finger 101 is returned to the sensor 105 at the time T₆ (FIG.9G), the finger 101 is swiped a second time (time T₅ to T₇, FIGS. 9F-H).Because this second swipe begins when the display 120 is already inmotion, the swipe results in a greater speed than the initial swipe(from time T₀ to T₂).

Preferably, the speed of the display 120 increases with the number ofswipes and also with the total distance traveled by the swipes. Thus,swiping the finger 101 along the finger sensor 105 five times will movethe display 120 faster than if the finger 120 was swiped four times. Andswiping the finger 101 five times a total distance of fives inches willresult in a faster motion than swiping the finger 101 five times but atotal distance of four inches.

While FIGS. 9A-C and 9G-H show a constant acceleration (e.g., the graph150 during the corresponding time periods has a constant slope), othertypes of acceleration are able to be attained in accordance with thepresent invention. Some examples include exponential acceleration, withor without a maximum value; and step-wise acceleration, to name only twotypes. Furthermore, acceleration can be determined using a look-uptable, such as one having scaling factors with values larger than one.Using the table entries of one such example, the speed is multiplied bythe scaling factors 1.1, 1.5, and 2.0 in sequential time intervals.

In this example, the speed decreases from T₂ to T₅ with an inertialdecay, in accordance with one embodiment of the present invention. Itwill be appreciated that in accordance with other embodiments, the speedcan decrease from T₂ to T₅ in other ways, both uniform and non-uniform.

In still another embodiment, motion is accelerated by swiping andholding a finger or other object on a finger sensor. An initial swipewill start accelerating a display (e.g., display 120 in FIGS. 1A-E). Atthe end of the swipe, the finger is held stationary, or nearlystationary. The display will continue to accelerate while the finger isheld in place. The longer the finger is held in place, the faster thedisplay moves, until a maximum speed (peak threshold) is reached. Afterthe display reaches the desired speed, the finger is either removed ormoved farther to complete the swipe.

It will be appreciated that embodiments of the present invention can becombined in many ways. For example, the sudden stop feature can beimplemented to suddenly stop the additive motion. Similarly, the suddenstop feature, the additive motion, and the deceleration, all inaccordance with the present invention, can all be combined in anycombination.

FIG. 10 shows the steps of a process 800 for determining additivemotion, such as additive scrolling, in accordance with one embodiment ofthe present invention. Many of the steps in the process 800 are similarto the steps in the process 600, shown in FIG. 7, and are similarlylabeled. To simplify the discussion, the common steps will not bediscussed here. Referring to FIG. 10, from the step 613, the processdetermines whether the display has stopped moving. If it has not, theprocess continues to the step 617, in which it determines whether a new(e.g., consecutive or sequential) swipe has occurred. If a new swipe hasnot occurred, the process loops back to the step 607. Otherwise, theprocess loops back to the step 603. If, in the step 603, the processdetermines that the finger was swiped in the same direction as duringthe immediately preceding swipe, the process later updates the positionand movement parameters in the step 607 to accelerate the displaymotion. On the other hand, if, in the step 603, the process determinesthat the finger was swiped in a direction opposite to that of theimmediately preceding swipe, the process later updates the position andmovement parameters in the step 607 to decelerate the display motion.

FIG. 11 is a block diagram of a system 900 used to emulate a scrollwheel using decay in accordance with the present invention. The system900 includes the finger sensor 105 coupled to a translation module 925,which translates finger movements into scroll wheel signals forscrolling the menu 120 on the display 125, as shown in FIGS. 1A-E. Thetranslation module 925 includes a movement correlator 910 and a motiontranslator 915. The movement correlator 910 correlates imagessequentially captured by the finger sensor 105 and determines fingermovement, such as in the step 303 of FIG. 4. The motion translator 915receives the finger movement, translates the finger movement intojoystick movement (step 305, FIG. 4), calculates new joystick movement(step 307, FIG. 4), updates inertial/acceleration factors based onjoystick position (step 309, FIG. 4), translates the joystick positioninto a scrolling motion by applying the acceleration factors (step 311,FIG. 4), and scrolls the menu accordingly (step 313, FIG. 4).

In one embodiment, both of the elements 910 and 915 include acomputer-readable medium containing instructions that cause a processorto perform the steps of FIG. 4. In other embodiments, the elementsinclude software, hardware, firmware, or any combination of these.

It will be appreciated that the steps shown in FIG. 4 can be distributedamong the components 910 and 915 in different ways, or among othercomponents, such as described in FIG. 12, below. Preferably, thecomponents 910 and 915 are also configured to implement the sudden-stopfeature described in FIG. 8, the additive motion feature described inFIG. 10, or both.

In one embodiment, a motion translator is used to provide inertialdeceleration when emulating multiple different input devices. Forexample, inertial deceleration is used to gradually decelerate movementcorresponding to a scroll wheel, a wheel (e.g., a roulette wheel), and amouse. Preferably, a single acceleration/deceleration module (such asone simulating deceleration, acceleration, and a sudden-stop feature) isshared among several device emulators. FIG. 12 illustrates a system 950that emulates several electronic input devices, all of which useacceleration/deceleration in accordance with the present invention.

The system 950 includes the elements 105 and 125, described above. Thesystem 950 also includes a translation module 980, which includes themovement correlator 910 and an acceleration/deceleration calculator 975.The acceleration/deceleration calculator 975 is coupled to a scrollwheel emulator 915, a wheel emulator 917, and a mouse emulator 919, allof which are coupled to a switch 985, which in turn is coupled to thedisplay device 125. The switch 985 routes to the display device 125 theemulator (i.e., 915, 917, and 919) corresponding to the device currentlybeing emulated. Device emulation using fingerprint sensors is discussedin U.S. Pat. No. 7,474,772, filed Jun. 21, 2004, and titled “System andMethod for a Miniature User Input Device,” which is incorporated byreference in its entirety.

In one example, referring to FIGS. 7 and 10, theacceleration/deceleration calculator 975 performs the step 607,determining the inertial decay from position and movement parameters.When the finger sensor 105 is used to emulate a scroll wheel, the step605 is performed by the scroll wheel emulator 915. When the fingersensor 105 is used to emulate a wheel, device movement is determined bythe wheel emulator 917. When the finger sensor 105 is used to emulate amouse, device movement is determined by the mouse emulator 919. Again,the elements 915, 917, and 919 can all be implemented using anycombination of hardware, software, firmware, or computer-readable mediafor controlling the operation of a processor.

Embodiments of the invention are also able to control a display inresponse to pressing a surface of a finger sensor, such as by a fingertap. As such, their usefulness can be seen in all variants offingerprint sensor navigation. As one example, movement having aninertial decay in accordance with the present invention is used to movethrough a list of items, to zoom in on or zoom out from an image of acity map, to select a large grid menu, and to control an arcade game,such as billiards, that provides virtual realism in terms of movement.

As one example, referring to FIGS. 1A-E, after the scrolling graduallycomes to a stop, the user presses the surface of the finger sensor 105to select a highlighted name, such as the topmost name in the menudisplay 120. Contact information for the highlighted name is thenimmediately presented on the display device 125.

As another example, referring to FIGS. 1A-E and 5, after the window 410has come to a stop (position 425E), tapping the finger sensor 105 in apredetermined manner (e.g., one quick tap) zooms in on that portion ofthe image within the window 410; tapping the finger sensor 105 inanother predetermined manner (e.g., two quick taps in succession or atap-and-hold motion) zooms out from the same portion of the image. Thoseskilled in the art will recognize other actions that can be taken bytapping or otherwise increasing a pressure on a surface of the fingersensor 105.

One embodiment of the invention allows for dual-mode scrolling. In thismode, a system is configured to perform both single-step (non-inertial)scrolling and inertial scrolling through the adjustment of the dampeningfactor based upon the context of recent movement. If the recent movementis indicative of slow or single-step scrolling, then the dampeningfactor is decreased substantially, resulting in what is effectivelynon-inertial scrolling (e.g., the joystick reverts to the zero or homeposition nearly instantly). As one example, the system determines thatrecent movement indicates a preference for slow or single-step scrollingwhen a user implements the sudden-stop feature several consecutivetimes. In response, the system adjusts the damping factor (e.g., in thestep 309) to ensure that the return-to-home motion is fast, approachinga single-step mode.

In the operation of one embodiment of the invention, a user swipes ortraces a finger on a finger sensor to set a display in motion. Duringthe swipe, the system determines the direction of the swipe and otherparameters, such as the duration of the swipe or the acceleration of theswipe. During the swipe, the user can accelerate the motion by againswiping, in the same direction as before; or she can decelerate themotion by swiping in a different direction. Once the swipe is completed,the display continues in the same direction, before slowing down. Thismotion provides the user with a more pleasurable viewing experience asthe display rolls to a smooth stop. The user also has greater controlover moving the display. Later, the user can tap the finger sensor totrigger an action, such as selecting a highlighted object.

In a preferred embodiment, a finger sensor, computing elements, anddisplay device are integrated onto a single device, such as a mobilephone, personal digital assistant, or portable gaming device.Alternatively, a system in accordance with the present inventionincludes separate components, such as a swipe sensor, display screen,and host computer.

Those skilled in the art will recognize that modifications can be madeto embodiments of the invention. For example, while most of theembodiments disclose a finger swipe sensor, other embodiments use afinger placement sensor. Furthermore, in the flow charts given, somesteps can be skipped, others added, and all can be performed indifferent sequences. It will be readily apparent to one skilled in theart that other modifications may be made to the embodiments withoutdeparting from the spirit and scope of the invention as defined by theappended claims.

1-33. (canceled)
 34. A method for moving at least one display element ona display using a finger sensor as an emulated input device, the methodcomprising: (a) determining finger movement along the finger sensorbased upon sequentially captured finger surface patterns; (b)translating the determined finger movement to updated position andinertial acceleration parameters of the emulated input device; (c)moving the at least one display element on the display based upon theupdated position and inertial acceleration parameters of the emulatedinput device; and (d) determining if the finger is still touching thefinger sensor, and when the finger is still touching the finger sensorthen repeating steps (a) through (c), and when the finger is no longertouching the finger sensor then applying updated position and inertialacceleration parameters to continue movement of the at least one displayelement on the display.
 35. The method of claim 34 comprising stoppingcontinued movement based upon a subsequent tapping of the finger sensor.36. The method of claim 34 wherein the determining finger movement alongthe finger sensor comprises determining finger movement as at least oneof a speed, a direction, and a time of finger swiping movement.
 37. Themethod of claim 34 wherein the determining finger movement along thefinger sensor comprises determining speed of finger swiping movement;and wherein translating comprises translating a faster speed of fingerswiping movement into a slower deceleration.
 38. The method of claim 34wherein the determining finger movement along the finger sensorcomprises determining speed of finger swiping movement; and whereintranslating comprises translating a greater time of finger swipingmovement into a slower deceleration.
 39. The method of claim 34 whereinthe emulated input device comprises at least one of a joystick, mouse,and scroll wheel.
 40. The method of claim 34 wherein the captured fingerpatterns comprise at least one of bifurcations, pores, ridge endings,swirls, and whorls.
 41. The method of claim 34 wherein translatingcomprises translating the determined finger movement to updated positionand inertial acceleration parameters of the emulated input device basedupon values stored in a look-up table.
 42. The method of claim 34wherein translating comprises translating the determined finger movementto updated position and inertial acceleration parameters of the emulatedinput device based upon an inertial decay function.
 43. The method ofclaim 34 wherein the computer display shows one of a list of items, aregion of an image, a grid menu, slides of images, a game image, and anelement of a computer simulation.
 44. The method of claim 34 wherein theat least one display element comprises a movable window.
 45. A methodfor moving at least one display element on a display using a fingersensor as an emulated input device, the method comprising: (a)determining finger movement along the finger sensor as at least one of aspeed, a direction, and a time of finger swiping movement based uponsequentially captured finger surface patterns; (b) translating thedetermined finger movement to updated position and inertial accelerationparameters of the emulated input device; (c) moving the at least onedisplay element on the display based upon the updated position andinertial acceleration parameters of the emulated input device; (d)determining if the finger is still touching the finger sensor, and whenthe finger is still touching the finger sensor then repeating steps (a)through (c), and when the finger is no longer touching the finger sensorthen applying updated position and inertial acceleration parameters tocontinue movement of the at least one display element on the display andstopping continued movement based upon a subsequent tapping of thefinger sensor.
 46. The method of claim 45 wherein the determining fingermovement along the finger sensor comprises determining speed of fingerswiping movement; and wherein translating comprises translating a fasterspeed of finger swiping movement into a slower deceleration.
 47. Themethod of claim 45 wherein the determining finger movement along thefinger sensor comprises determining speed of finger swiping movement;and wherein translating comprises translating a greater time of fingerswiping movement into a slower deceleration.
 48. The method of claim 45wherein the emulated input device comprises at least one of a joystick,mouse, and scroll wheel.
 49. The method of claim 45 wherein the capturedfinger patterns comprise at least one of bifurcations, pores, ridgeendings, swirls, and whorls.
 50. The method of claim 45 whereintranslating comprises translating the determined finger movement toupdated position and inertial acceleration parameters of the emulatedinput device based upon values stored in a look-up table.
 51. The methodof claim 45 wherein translating comprises translating the determinedfinger movement to updated position and inertial acceleration parametersof the emulated input device based upon an inertial decay function. 52.The method of claim 45 wherein the at least one display elementcomprises a movable window.
 53. An electronic device comprising: adisplay; a finger sensor; and a motion translator configured to (a)determine finger movement along the finger sensor based uponsequentially captured finger surface patterns, (b) translate thedetermined finger movement to updated position and inertial accelerationparameters of an emulated input device, (c) move the at least onedisplay element on the display based upon the updated position andinertial acceleration parameters of the emulated input device, and (d)determine if the finger is still touching the finger sensor, and whenthe finger is still touching the finger sensor then repeat steps (a)through (c), and when the finger is no longer touching the finger sensorthen apply updated position and inertial acceleration parameters tocontinue movement of the at least one display element on the display.54. The electronic device of claim 53 wherein the motion translator isconfigured to stop continued movement based upon a subsequent tapping ofthe finger sensor.
 55. The electronic device of claim 53 wherein themotion translator is configured to determine finger movement as at leastone of a speed, a direction, and a time of finger swiping movement. 56.The electronic device of claim 53 wherein the motion translator isconfigured to determine speed of finger swiping movement, and translatea faster speed of finger swiping movement into a slower deceleration.57. The electronic device of claim 53 wherein the motion translator isconfigured to determine speed of finger swiping movement, and translatea greater time of finger swiping movement into a slower deceleration.58. The electronic device of claim 53 wherein the emulated input devicecomprises at least one of a joystick, mouse, and scroll wheel.
 59. Theelectronic device of claim 53 wherein the captured finger patternscomprise at least one of bifurcations, pores, ridge endings, swirls, andwhorls.
 60. The electronic device of claim 53 wherein the motiontranslator is configured to translate the determined finger movement toupdated position and inertial acceleration parameters of the emulatedinput device based upon values stored in a look-up table.
 61. Theelectronic device of claim 53 wherein the motion translator isconfigured to translate the determined finger movement to updatedposition and inertial acceleration parameters of the emulated inputdevice based upon an inertial decay function.
 62. The electronic deviceof claim 53 wherein the at least one display element comprises a movablewindow.